草庐IT

AHB_Bus_Matrix_3x3 设计

全部标签

java - 处理事件的设计模式

我正在尝试了解最适合用于处理一系列消息的(Java)设计模式。每条消息都包含一个“类型”,它确定应如何处理消息中包含的数据。我一直在考虑命令模式,但很难理解特定命令类的角色/相关性。到目前为止,我已经确定接收器将包含实现消息处理方法的代码。具体命令将根据消息类型实例化。但是,我不知道应该如何传递实际的消息数据。它是否应该通过具体命令执行方法调用适当的接收器方法传递给接收器构造函数?也许消息数据应该在接收者操作方法调用中传递?我对这一切还很陌生,所以任何指导都将不胜感激。这可能有帮助:publicinterfaceCommand{publicvoidexecute(Stringmsg);

java - 在java中为国际象棋游戏设计对象

我正在用Java设计一个国际象棋游戏(没有AI,只有用户控制),并且还在习惯OOP。我有两个问题。除了Game、Cell、Piece和Board对象之外,我还想拥有一个Player对象。我的问题是,我真的需要吗?当然我不需要,但是这两种选择都被认为是更好的设计吗?一方面,似乎Player对于包含有关玩家棋子的信息很有用,并且应该包含诸如takeTurn()之类的方法。(对于我的实现,我还想跟踪所有可能的移动,所以我将有一个方法getAllMoves())。另一方面,Player不就是对现有数据的重组吗?每个Piece都已经表明它属于哪个玩家。由于我的游戏不包含AI,因此takeTurn

java - 面向对象设计 : generic handling of sub classes that introduce new fields

这是一个我一直遇到的设计问题,所以我想我最终会把它放在那里,看看人们会如何处理它。问题如下:我确定了一个特定的类,它大部分描述了我将使用的对象的所有实例,包括行为和数据方面的。这很好,适用于基本对象。然后出现了一些其他类型的对象,它们需要相同的数据和行为,但还希望在这里或那里有一个额外的字段,或者一个额外的数据结构。让我们称这个类为Something:publicclassSomething{privateintid;privateStringfieldA;privateStringfieldB;privateListlist;//Thenwehavegetters,setters,a

java - 什么时候应该让应用程序因为 Java 中的异常(设计问题)而崩溃?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion在大多数情况下,可以在Java中捕获异常,甚至是未经检查的异常。但是,不一定可以对此做些什么(例如内存不足)。对于其他情况,我试图解决的问题是设计原则问题。我正在尝试建立一个设计原则或一组规则,指示何时应该放弃异常情况,即使它被及时检测到。目标是尽量不让应用程序崩溃。是否有人已经就此集思广益并进行了交流?我正在寻找特定的通用案例和可能的解决方案或经验法则。更新到目前为止的建议:如果数据一致性受

具有泛型集合的类的 Java 适当扩展设计

假设我得到了A、B、C类B延伸A和C还扩展了A.现在我有2个不同的类,我们称它们为MyClassB和MyClassC与ArrayList的成员一起和ArrayList恭敬地。由于在MyClassB中进行了许多操作和MyClassC相同且仅在不同类型的ArrayList上完成,我想创建一个新的抽象类MyClassA它将在ArrayList上执行相同的操作对于两个类,自A是Action相同的公共(public)部分。所以我尝试在新的MyClassA中创建一个方法接收一个列表作为参数并应该对该列表执行操作的类。但是,我不能通过ArrayList到它期望的方法ArrayList.那么我该怎么做

行为附加到注释的 Java 设计问题

假设我通过使用@transactions注释来使用JPA。因此,为了让任何方法在事务下运行,我添加了一个@transaction注释,BINGO我的方法在事务下运行。为了实现上述目标,我们需要为该类提供一个接口(interface),并且该实例由某个容器管理。此外,我应该始终从接口(interface)引用中调用该方法,以便代理对象可以启动事务。所以我的代码看起来像:classBar{@InjectprivateFooIfoo;...voiddoWork(){foo.methodThatRunUnderTx();}}classFooImplimplementsFooI{@Overrid

Java模型对象设计

所以我一直在阅读一些EffectiveJava!本书中最鼓舞人心的部分之一是不可变对象(immutable对象)/构建器部分,布洛赫在该部分写了关于“构建器”的内容——类而不仅仅是POJO。注意:我在这里谈论的是模型对象:例如Article或Car。我之前是这样写这些对象的:publicclassCar{privateStringname;publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnname;}}现在,正如您所看到的,这种设计在很多方面都有缺陷,它需要可变性,您必须首先使用构造函数然

java - boolean containsAll(Collection<?> c) vs boolean addAll(Collection<? extends E> c); 的设计决策在集合框架中

这个问题在这里已经有了答案:GenericCollection(10个答案)关闭9年前。为什么booleancontainsAll(Collectionc);每种类型都允许集合框架的方法?。但是booleanaddAll(Collectionc);允许?extendsE。所以,我写了一个程序来澄清。这是我的程序publicclassContainAllTest{//takeServiceDtoArrayListresultList=newArrayList();voidTest(){ServiceDtoserviceDto=newServiceDto();serviceDto.setN

基于STM32和LD3320的智能语音识别柔光台灯设计

目录标题基于STM32智能语音识别柔光台灯设计设计说明原理图系统各模块器件介绍LD3320语音识别模块OLED显示模块PCB图源程序程序设计框架程序流程图主函数OLED程序设计说明书立论依据文献综述研究内容研究基础毕业设计:基于STM32智能语音识别柔光台灯设计(源程序+原理图+PCB+设计说明书+PPT)原理图:AltiumDesigner程序编译器:keil4/keil5编程语言:C语言设计编号:Y001资料下载链接设计说明课题主要研究语音识别、按键识别、PWM波调节亮度、OLED屏幕显示四个模块,目前市面上语音识别的台灯大多仅是控制灯的亮灭,采用的是普通LED节能灯进行照明,相比较于市场

java - "variable may not have been initialized"的设计合理性是什么?

这个问题在这里已经有了答案:Whymustlocalvariables,includingprimitives,alwaysbeinitializedinJava?(8个答案)关闭9年前。众所周知,在Java中需要在使用局部变量之前对其进行初始化(参见JLS)Alocalvariable(§14.4,§14.14)mustbeexplicitlygivenavaluebeforeitisused,byeitherinitialization(§14.4)orassignment(§15.26),inawaythatcanbeverifiedusingtherulesfordefinit